<?php 

/**
 * Класс отображения
 * @author bikmullin
 * @version 1.0
 */
class face
{
	protected $dof;
	
	public function __construct($DOF)
    {
        // Сохраняем ссылку на DOF, чтоб вызывать его через $this->dof
        $this->dof = $DOF;
    }
    /**
     * show_messages 
     * функция, отображающая тело гостевой книги
     * @param obj $engine объект доступа к базе данных
     */
    function show_messages($return = false)
    {
        //инциализируем строку вывода
        $out = "";
        //берем из базы сообщения
        $messages = $this->dof->storage('gbmessages')->get_messages();
        //если массив с сообщениями не пустой
        if(!empty($messages))
        {
            //перебираем его
            foreach($messages as $message)
            {
            	$date = date("F j, Y, g:i a", $message->actual_date); 
                //записываем в строку $out готовый html код содержащий комментарии к сообщению
                $out .=  "<div class = 'guestbook' style='margin-left:35%;'>
                <p>Date:{$date}</p>
                <p>Message:<br /><textarea cols='45' rows='5' readonly='readonly' style='resize:none;'>{$message->text}</textarea></p>";
				$out .= $this->show_control_buttons($message->id, "messagesbuttons");
                //вызов функции для вывода комментариев к текущему сообщению             //  
                $out .= $this->show_comments($message->id);
                $out .= "</div>";
            }
        }
		if($return){
			return stripslashes($out);
		} else {
			 //вывод тела гостевой книги
        	echo stripslashes($out);
		}
    }
    /**
     * show_comments
     * Функция, отображающая комментарии к определенному сообщению
     * @param obj $engine объект доступа к базе данных
     * @param int $id идентификатор сообщения
     * @return string строка с html кодом комментариев
     */
    function show_comments($id, $buttons = "commentsbuttons")
    {
        //инициализируем строку вывода
        $out = "";
        //берем комментарии из базы данных
        $comments = $this->dof->storage('gbcomments')->get_comments($id);
        //если массив с комментариями не пустой
        if($comments != false )
       	{
           //перебираем его
           foreach($comments as $comment)
               {
               	   $date = date("F j, Y, g:i a", $comment->comment_date);
        	       //записывает в строку $out готовый html код содержащий комментарии к сообщению
        	       $out .=  "<div class = comment style='margin-left:10%;'>
        	                    <p>Date:{$date}</p>
        	                    <p>Message:<br /><textarea cols='45' rows='5' readonly='readonly' style='resize:none;'>{$comment->text}</textarea></p>";
				   $out .= $this->show_control_buttons($comment->id, $buttons);
        	                   
        	       $out .= " </div>";
               } 
        //возвращаем строку с html кодом
       return $out;
       }
       //если массив с комментариями пуст, вернуть ложь
       else return false;
    }
    /**
     * show_message_with_comments
     * Функция для вывода одного сообщения с комментариями к нему
     * @param obj $engine объект доступа к базе данных
     * @param int $id идентификатор сообщения
     */
    function show_message_with_comments($id)
    {
    	
        //берем сообщение из базы и помещаем в ассоциативный массив
        $message = $this->dof->storage('gbmessages')->get($id);
		$date = date("F j, Y, g:i a", $message->actual_date); 
        //запись в строку вывода сообщения
        $out = "<div class='guestbook'>
        		    <p>Date:{$date}</p>
          			<p>Message:<br /><textarea cols='45' rows='5' readonly='readonly'>{$message->text}</textarea></p>";
        //дозапись в строку вывода комментариев
        $out .= $this->show_comments($id, "nobuttons");
		$out .= "</div>";
        //вывод на страницу
        echo $out;
    }
    function show_control_buttons($id, $buttons)
	{
	    $path = $this->dof->url_im('guestbook');
		$out = "";
		switch($buttons)
		{
			case "messagesbuttons":
				 $out .= "<a href='".$path."/handler.php?action=edit&tbl_name=messages&id={$id}'>Редактировать</a>
                				<a href='".$path."handler.php?action=delete&tbl_name=messages&id={$id}'>Удалить</a>
                				<a href='".$path."handler.php?action=comment&id={$id}' >Комментировать</a>"; 
				return $out;
			break;
			case "commentsbuttons": 
				$out .= "<a href='".$path."handler.php?action=edit&tbl_name=comments&id={$id}'>Редактировать</a>
                				<a href='".$path."handler.php?action=delete&tbl_name=comments&id={$id}'>Удалить</a>";
				return $out;
			break;
			case "nobuttons":return $out;
			break;
			default:return $out;
			break;
		}
	}
}
?>